package com.android.support.lib.universal.base;

import com.umeng.analytics.MobclickAgent;

import android.os.Bundle;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AppCompatActivity;
import android.view.WindowManager;

//继承AppCompatActivity，其主题必须为Theme.AppCompat 否则报错奔溃
public abstract class BaseActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //竖屏(默认)
        //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        //横屏
        //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        super.onCreate(savedInstanceState);
        // 将当前Activity添加到栈中
        BaseActivityManager.getInstance().pushActivity(this);
        // 防止View跑到状态栏上去去。布局添加以下两个属性
        // android:fitsSystemWindows="true"
        // android:clipToPadding="true"
        // 手机版本要求在4.4及以上版本
        if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
            // 透明状态栏,屏幕的顶部。状态栏的样式和布局(顶级)背景一体化。
            //优先级高于colorPrimaryDark主题样式。
            getWindow().addFlags(
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            // 透明导航栏，屏幕的底部
            // getWindow().addFlags(
            // WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        // Umeng
        MobclickAgent.onPageStart("" + getRunningActivityName()); // 统计页面
        MobclickAgent.onResume(this); // 统计时长
    }

    // 获取当前activity名字
    private String getRunningActivityName() {
        String contextString = this.toString();
        return contextString.substring(contextString.lastIndexOf(".") + 1,
                contextString.indexOf("@"));
    }

    @Override
    protected void onPause() {
        super.onPause();
        // umeng
        MobclickAgent.onPageEnd("" + getRunningActivityName()); // 保证 onPageEnd
        // 在onPause
        // 之前调用,因为
        // onPause
        // 中会保存信息
        MobclickAgent.onPause(this);
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        // finish and remove self;
        BaseActivityManager.getInstance().finishActivity(this);
    }


    /**
     * 初始化UI
     */
    protected abstract void initUI();

    /**
     * 初始监听事件
     */
    protected abstract void listenner();

    public BaseActivity() {
        super();
        // TODO Auto-generated constructor stub
    }

}
